14.1.
title: 3 构建你的第一个应用(React Native开发指南)
categories:
- React Native开发指南
tag: - ReactNative
toc: true
3.1 搭建环境
说明:使用 HomeBrew 安装1
2
3
4$ brew install node
$ brew install watchman # Watchman 是 facebook 的一个开源项目,它开源用来监视文件并且记录文件的改动情况,当文件变更它可以触发一些操作
$ brew install flow # Facebook 公司出品的一个类型检查库(如果你想让 React Native 项目支持类型检查,可以使用 flow)
安装中出现问题
说明:如果出现问题,需要更新 brew 和相关依赖包1
2$ brew update # 更新用 homebrew 安装的软件
$ brew upgrade # 更新 homebrew 自身
安装中出现错误1
$ brew doctor # 找到问题所在
3.1.1 安装 React Native
1 | $ npm install -g react-native-cli # 命令行工具 |
3.1.2 iOS依赖
- 一个 iOS 开发者账号(申请这个账号是免费的)
- 获得一个许可(如果需要部署到 iOS 应用商店)
- Xcode(Xcode 集成开发环境、iOS模拟器、iOS SDK)
- 应用商店下载
- 网站下载https:// developer.apple.com/xcode/download/
3.1.3 Android依赖
(1) 安装最新版本的 JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html
(2) 安装 Android SDK
1 | # 安装 Android SDK |
- 打开 Android SDK 管理器,选择开发包进行安装
(1)打开 Android SDK 管理器1
$ android # 下载完成后有可能需要关闭窗口,然后重新打开
(2)需要安装的包
- Android SDK Tools
- Android SDK Platform-tools
- Android SDK Build-tools
- Android 7.0-> *
- Extras->Android Support Repository
- Extras->Intel x86 Emulator Accelerator (HAXM installer)
- 通过 AVD(Android Virtual Device) 管理器创建和运行模拟器
说明:由于Android设备种类繁多,有不同的屏幕尺寸、 分辨率和功能,因此使用不同的模拟器通常能为测试带来帮助。当然,出于学习的目的, 我们只需要安装一个即可。
注意:保勾选了Use Host GPU
,否则模拟器会非常慢
(1)启动 AVD1
$ android avd
(2)创建一个模拟器
3.2 创建一个新的应用
随书源码:https://github.com/bonniee/learning- react-native
1 | $ react-native init RN_FOR_BOOK_FIRST_PROJECT # 创建 React Native 项目 |
3.2.1 在 iOS 平台运行 React Native 应用
虚拟机快捷键 | 说明 |
---|---|
Cmd + R | 重载 JS |
Cmd + D | 打开 开发菜单 |
1 | # 使用 Xcode 打开 |
3.2.2 部署到 iOS 设备
注意:如果遇到 not found the kernel library or the...
问题,说明 Xcode 不支持当前的iOS版本,升级 Xcode 到最新版。
- 打开 Xcode,进入Xcode->Preference->Accounts,添加 Apple ID
- 在 Xcode 中打开通用面板,点击 Fix Issue,按照引导获取证书
- 登录到 Apple 开发者中心http:// developer.apple.com,然后注册你的设备
在
AppDelegate.m
文件中将localhost
改成你的 Mac 的 IP 地址1
2
3
4
5...
// 例如 IP为:10.10.12.345
jsCodeLocation =
[NSURL URLWithString:@"http://10.10.12.345:8081/index.ios.bundle"];
...xcode 打开项目
- iOS设备通过数据线连接到 mac
- 设备切换为 实体iOS设备 并运行项目
3.2.3 在 Android 平台运行 React Native 应用
快捷键 | 说明 |
---|---|
双击R | 重新加载应用 |
甩动 手机或按菜单键 |
调出开发相关菜单 |
3.2.3.1 手动搭建集成环境
第一步:启动虚拟机
方式1:部分命令行
(1)启动AVD管理器1
$ android avd
(2)选中目标虚拟机,点击start
方式2:全部命令行
(1)查看虚拟机列表1
$ emulator -list-avds
(2)通过名字和 @ 前缀来运行它们1
$ emulator @虚拟机设备名
第二步:加载 React native 项目
1 | # 在工程的根目录运行如下命令 |
FAQ
(1)启动时遇到问题
CPU acceleration status: HAXM is not installed on this machine
解决:手动安装这个文件:/usr/local/Cellar/android-sdk/24.4.1_1/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM_6.0.3.dmg
(2)加载项目时出现错误
failed to find target with hash string 'android-23' in: /usr/local/opt/android-sdk
解决:编辑android/app/build.grdle
1
2
3
4
5
6
7...
android {
compileSdkVersion 24 # sdk 版本和运行的虚拟 sdk 版本保持一致
buildToolsVersion "24.0.2" # build tool 版本也要保持一致
...
}
...
3.2.3.2 Android Studio
3.2.4 小结:创建并运行项目
3.3 探索示例代码
说明:深入到默认应用的源代码中去探索 React Native
项目的结构
3.3.1 添加组件到视图中
3.3.2 React Native 中的模块导入
3.3.3 FirstProjext组件
3.4 开发天气应用
说明:书中给的代码不是纯粹的es6
,随书源码给的是es6
版本的,但运行不了。因此我会跟随书重新编写一遍代码,但会使用es6
版本的。
(1)创建项目1
$ reac-native init RN_FOR_BOOK_WEATHER
(2)修改默认设置
$ vim android/app/build.gradle1
2
3
4
5
6
7...
android {
compileSdkVersion 24 # sdk 版本和运行的虚拟 sdk 版本保持一致
buildToolsVersion "24.0.2" # build tool 版本也要保持一致
...
}
...
(3)将初始组件的代码移动到 Weather.js
中,精简 index.ios.js
和 index.android.js
代码
3.4.1 处理用户输入
3.4.1.1 效果预览
iOS 效果
Android 效果
3.4.2 展现数据
3.4.3 添加背景图片
说明:书上讲的内容是0.14
之前的,过时了,具体看这里:https://facebook.github.io/react-native/docs/images.html
3.4.4 从 Web 获取数据
FAQ
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure...
天气接口返回 401
http://openweathermap.org/faq